home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1995-09-11  |  11.8 KB  |  309 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        HyperXCmd.p
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Package:    Universal Interfaces 2.1.1 in “MPW Latest” on ETO #19
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT HyperXCmd;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __HYPERXCMD__}
  30. {$SETC __HYPERXCMD__ := 1}
  31.  
  32. {$I+}
  33. {$SETC HyperXCmdIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {    ConditionalMacros.p                                            }
  41.  
  42. {$IFC UNDEFINED __EVENTS__}
  43. {$I Events.p}
  44. {$ENDC}
  45. {    Quickdraw.p                                                    }
  46. {        MixedMode.p                                                }
  47. {        QuickdrawText.p                                            }
  48. {    OSUtils.p                                                    }
  49. {        Memory.p                                                }
  50. {        Patches.p                                                }
  51.  
  52. {$IFC UNDEFINED __TEXTEDIT__}
  53. {$I TextEdit.p}
  54. {$ENDC}
  55.  
  56. {$IFC UNDEFINED __MENUS__}
  57. {$I Menus.p}
  58. {$ENDC}
  59.  
  60. {$IFC UNDEFINED __STANDARDFILE__}
  61. {$I StandardFile.p}
  62. {$ENDC}
  63. {    Dialogs.p                                                    }
  64. {        Errors.p                                                }
  65. {        Controls.p                                                }
  66. {        Windows.p                                                }
  67. {    Files.p                                                        }
  68. {        Finder.p                                                }
  69.  
  70. {$PUSH}
  71. {$ALIGN MAC68K}
  72. {$LibExport+}
  73. { result codes }
  74.  
  75. CONST
  76.     xresSucc                    = 0;
  77.     xresFail                    = 1;
  78.     xresNotImp                    = 2;
  79.  
  80. { XCMDBlock constants for event.what... }
  81.     xOpenEvt                    = 1000;                            { the first event after you are created }
  82.     xCloseEvt                    = 1001;                            { your window is being forced close (Quit?) }
  83.     xGiveUpEditEvt                = 1002;                            { you are losing Edit... }
  84.     xGiveUpSoundEvt                = 1003;                            { you are losing the sound channel... }
  85.     xHidePalettesEvt            = 1004;                            { someone called HideHCPalettes }
  86.     xShowPalettesEvt            = 1005;                            { someone called ShowHCPalettes }
  87.     xEditUndo                    = 1100;                            { Edit——Undo }
  88.     xEditCut                    = 1102;                            { Edit——Cut }
  89.     xEditCopy                    = 1103;                            { Edit——Copy }
  90.     xEditPaste                    = 1104;                            { Edit——Paste }
  91.     xEditClear                    = 1105;                            { Edit——Clear }
  92.     xSendEvt                    = 1200;                            { script has sent you a message (text) }
  93.     xSetPropEvt                    = 1201;                            { set a window property }
  94.     xGetPropEvt                    = 1202;                            { get a window property }
  95.     xCursorWithin                = 1300;                            { cursor is within the window }
  96.     xMenuEvt                    = 1400;                            { user has selected an item in your menu }
  97.     xMBarClickedEvt                = 1401;                            { a menu is about to be shown--update if needed }
  98.     xShowWatchInfoEvt            = 1501;                            { for variable and message watchers }
  99.     xScriptErrorEvt                = 1502;                            { place the insertion point }
  100.     xDebugErrorEvt                = 1503;                            { user clicked "Debug" at a complaint }
  101.     xDebugStepEvt                = 1504;                            { hilite the line }
  102.     xDebugTraceEvt                = 1505;                            { same as step but tracing }
  103.     xDebugFinishedEvt            = 1506;                            { script ended }
  104.  
  105.     paletteProc                    = 2048;                            { Windoid with grow box }
  106.     palNoGrowProc                = 2052;                            { standard Windoid defproc }
  107.     palZoomProc                    = 2056;                            { Windoid with zoom and grow }
  108.     palZoomNoGrow                = 2060;                            { Windoid with zoom and no grow }
  109.     hasZoom                        = 8;
  110.     hasTallTBar                    = 2;
  111.     toggleHilite                = 1;
  112.  
  113. { paramCount is set to these constants when first calling special XThings }
  114.     xMessageWatcherID            = -2;
  115.     xVariableWatcherID            = -3;
  116.     xScriptEditorID                = -4;
  117.     xDebuggerID                    = -5;
  118.  
  119. { XTalkObjectPtr->objectKind values }
  120.     stackObj                    = 1;
  121.     bkgndObj                    = 2;
  122.     cardObj                        = 3;
  123.     fieldObj                    = 4;
  124.     buttonObj                    = 5;
  125.  
  126. { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  127.     errorDlgID                    = 1;                            { 1:OK (default) }
  128.     confirmDlgID                = 2;                            { 1:OK (default) and 2:Cancel }
  129.     confirmDelDlgID                = 3;                            { 1:Cancel (default) and 2:Delete }
  130.     yesNoCancelDlgID            = 4;                            { 1:Yes (default), 2:Cancel, and 3:No }
  131.  
  132. { type definitions }
  133.  
  134. TYPE
  135.     XCmdBlock = RECORD
  136.         paramCount:                INTEGER;                                { If = -1 then new use for XWindoids }
  137.         params:                    ARRAY [1..16] OF Handle;
  138.         returnValue:            Handle;
  139.         passFlag:                BOOLEAN;
  140.         filler1:                SignedByte;
  141.         entryPoint:                UniversalProcPtr;                        { to call back to HyperCard }
  142.         request:                INTEGER;
  143.         result:                    INTEGER;
  144.         inArgs:                    ARRAY [1..8] OF LONGINT;
  145.         outArgs:                ARRAY [1..4] OF LONGINT;
  146.     END;
  147.  
  148.     XCmdPtr = ^XCmdBlock;
  149.  
  150.     XWEventInfo = RECORD
  151.         event:                    EventRecord;
  152.         eventWindow:            WindowPtr;
  153.         eventParams:            ARRAY [1..9] OF LONGINT;
  154.         eventResult:            Handle;
  155.     END;
  156.  
  157.     XWEventInfoPtr = ^XWEventInfo;
  158.  
  159.     XTalkObject = RECORD
  160.         objectKind:                INTEGER;                                { stack, bkgnd, card, field, or button }
  161.         stackNum:                LONGINT;                                { reference number of the source stack }
  162.         bkgndID:                LONGINT;
  163.         cardID:                    LONGINT;
  164.         buttonID:                LONGINT;
  165.         fieldID:                LONGINT;
  166.     END;
  167.  
  168.     XTalkObjectPtr = ^XTalkObject;
  169.  
  170. { maximum number of checkpoints in a script }
  171.  
  172. CONST
  173.     maxCachedChecks                = 16;
  174.  
  175.  
  176. TYPE
  177.     CheckPts = RECORD
  178.         checks:                    ARRAY [1..16] OF INTEGER;
  179.     END;
  180.  
  181.     CheckPtPtr = ^CheckPts;
  182.  
  183.     CheckPtHandle = ^CheckPtPtr;
  184.  
  185. {
  186.         HyperTalk Utilities  
  187. }
  188.  
  189. FUNCTION EvalExpr(paramPtr: XCmdPtr; expr: ConstStr255Param): Handle;
  190. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: ConstStr255Param);
  191. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: ConstStr255Param);
  192. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  193. {
  194.         Memory Utilities  
  195. }
  196. FUNCTION GetGlobal(paramPtr: XCmdPtr; globName: ConstStr255Param): Handle;
  197. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: ConstStr255Param; globValue: Handle);
  198. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: UNIV Ptr; longCount: LONGINT);
  199. {
  200.         String Utilities  
  201. }
  202. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  203. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  204. FUNCTION StringEqual(paramPtr: XCmdPtr; str1: ConstStr255Param; str2: ConstStr255Param): BOOLEAN;
  205. FUNCTION StringLength(paramPtr: XCmdPtr; strPtr: UNIV Ptr): LONGINT;
  206. FUNCTION StringMatch(paramPtr: XCmdPtr; pattern: ConstStr255Param; target: UNIV Ptr): Ptr;
  207. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);
  208. {
  209.         String Conversions  
  210. }
  211. PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
  212. PROCEDURE Double_tToStr(paramPtr: XCmdPtr; num: double_t; VAR str: Str255);
  213. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LONGINT; VAR str: Str255);
  214. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LONGINT; nDigits: INTEGER; VAR str: Str255);
  215. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LONGINT; VAR str: Str255);
  216. FUNCTION PasToZero(paramPtr: XCmdPtr; str: ConstStr255Param): Handle;
  217. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  218. PROCEDURE RectToStr(paramPtr: XCmdPtr; {CONST}VAR rct: Rect; VAR str: Str255);
  219. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  220. FUNCTION StrToBool(paramPtr: XCmdPtr; str: ConstStr255Param): BOOLEAN;
  221. FUNCTION StrToDouble_t(paramPtr: XCmdPtr; str: ConstStr255Param): double_t;
  222. FUNCTION StrToLong(paramPtr: XCmdPtr; str: ConstStr255Param): LONGINT;
  223. FUNCTION StrToNum(paramPtr: XCmdPtr; str: ConstStr255Param): LONGINT;
  224. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: ConstStr255Param; VAR pt: Point);
  225. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: ConstStr255Param; VAR rct: Rect);
  226. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  227. {
  228.         Field Utilities  
  229. }
  230. FUNCTION GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  231. FUNCTION GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: ConstStr255Param): Handle;
  232. FUNCTION GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  233. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  234. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: ConstStr255Param; fieldVal: Handle);
  235. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  236. FUNCTION GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: ConstStr255Param): TEHandle;
  237. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: ConstStr255Param; fieldTE: TEHandle);
  238. {
  239.         Miscellaneous Utilities  
  240. }
  241. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);
  242. PROCEDURE EndXSound(paramPtr: XCmdPtr);
  243. FUNCTION GetFilePath(paramPtr: XCmdPtr; fileName: ConstStr255Param; numTypes: INTEGER; typeList: ConstSFTypeListPtr; askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  244. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER; VAR rType: ResType; VAR name: Str255);
  245. PROCEDURE Notify(paramPtr: XCmdPtr);
  246. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; {CONST}VAR event: EventRecord);
  247. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: ConstStr255Param; msg: ConstStr255Param);
  248. FUNCTION FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  249. FUNCTION StackNameToNum(paramPtr: XCmdPtr; stackName: ConstStr255Param): LONGINT;
  250. FUNCTION ShowHCAlert(paramPtr: XCmdPtr; dlgID: INTEGER; promptStr: ConstStr255Param): INTEGER;
  251. FUNCTION AbortInQueue(paramPtr: XCmdPtr): BOOLEAN;
  252. PROCEDURE FlushStackFile(paramPtr: XCmdPtr);
  253. {
  254.         Creating and Disposing XWindoids  
  255. }
  256. FUNCTION NewXWindow(paramPtr: XCmdPtr; {CONST}VAR boundsRect: Rect; title: ConstStr255Param; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  257. FUNCTION GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  258. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);
  259. {
  260.         XWindoid Utilities  
  261. }
  262. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  263. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  264. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  265. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LONGINT);
  266. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  267. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  268. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  269. {
  270.         Text Editing Utilities  
  271. }
  272. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  273. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  274. FUNCTION HCWordBreakProc(paramPtr: XCmdPtr): WordBreakUPP;
  275. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  276. {
  277.         Script Editor support  
  278. }
  279. FUNCTION GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;
  280. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  281. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; VAR insertionPoint: LONGINT; quickFormat: BOOLEAN);
  282. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);
  283. PROCEDURE GetObjectName(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR objName: Str255);
  284. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR scriptHndl: Handle);
  285. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; scriptHndl: Handle);
  286. {
  287.         Debugging Tools support  
  288. }
  289. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  290. PROCEDURE GoScript(paramPtr: XCmdPtr);
  291. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  292. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  293. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255; VAR objectName: Str255; VAR varCount: INTEGER);
  294. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255; varHndl: Handle);
  295. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  296. FUNCTION GetStackCrawl(paramPtr: XCmdPtr): Handle;
  297. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  298.  
  299. {$ALIGN RESET}
  300. {$POP}
  301.  
  302. {$SETC UsingIncludes := HyperXCmdIncludes}
  303.  
  304. {$ENDC} {__HYPERXCMD__}
  305.  
  306. {$IFC NOT UsingIncludes}
  307.  END.
  308. {$ENDC}
  309.